﻿@{
    ViewBag.Title = "Help";
    <style>
        .green
        {
            color: Green;
        }
        .blue
        {
            color: Blue;
        }
    </style>
    
}
<div style="margin-left: 50px; margin-right: 50px;">
    <h2>
        How IPHelper Tool Works?</h2>
    <hr />
    <h4>
        IPHelper is a user friendly configuration templating tool for IP network engineers,
        designers, troubleshooters and anyone dealing with network device configurations.
        Most commonly used with Cisco, Juniper, Alcatel and other text based device
        configurations.
    </h4>
    <p>
    In a large IP network infrastructure, IP designers use text templates to apply configurations on a production network device. These configurations are also called "Methods Of Procedures" or MOPs. 
     IPHelper Tool helps network designers to write standard and reusable templates improving productivity and efficiency of the network environment.</p>
    <p>
        Unlike expensive vendor tools which are using XML formats, the IPHelper Tool is using JSON (<a href="http://www.json.org">Java Script Object Notation</a>)
        data format for defining variables(or keys). Using a Key:Value pair you can
        define a variable with a default value. The tool support most commonly used methods
        of defining variables in an IP environment. 
    </p>    <hr />
    <h2>Features</h2>
    <ul style="margin-left:50px">
    <li>Automatic comments coloring using "//", "!" and "/* */".</li>
    <li>JSON format variable naming with optional default value.</li>
    <li>Add or subract the value of the IP address.</li>
    <li>Repeatable string formatted data input.</li>
    <li>Automatically convert data into upper, lower or capitalized case.</li>
    <li>Display a color coded input parameters.</li>
    <li>Save current data and reload it with the latest template.</li>
    <li>Save generated Methods Of Procedures as html page.</li>
    </ul>
    <h2>Sample Comments</h2>
    <div style="color: Green; font-weight: bold;">
        // This is a bolded line comment</div>
    <div style="color: Green;">
        ! Another line comment</div>
    <div style="color: #3399FF;">
        /* text lines from here are considered comments
        <br />
        to here<br />
        up to here */</div>

    <h2>
        Supported Parameter Formats</h2>
    <ol class="round">
        <li class="one">
            <h3 class="blue">
                Simple Parameter: [{"VAR NAME":"DEFAULT VALUE"}] or lazy format as [{VAR NAME}]</h3>
           <p>Using JSON format of Key:Value pair where Key= Variable Name, Value= Default value
            which can be overwritten by user input.</p> 
            <h5>
                Template Usage:</h5>
            <br />
            <pre>
            <code>ip route [{"IP TO ROUTE":"10.10.2.1"}] 255.255.255.255 10.1.1.1 </code>
            </pre>
            <h5>
                Sample Input:</h5>
            <br />
            IP TO ROUTE<input type="text" name="input_data" value="10.10.2.1" />
            <h5>
                Sample Output:</h5>
            <br />
            <pre>
            <code>ip route 10.50.1.100 255.255.255.255 10.1.1.1 </code>
            </pre>
        </li>
        <li class="two">
            <h3 class="blue">
                Formatted Parameter: [{"VAR NAME":"ip route {0} 10.1.1.1 {1}"}]</h3>
            <p>Using JSON format of Key:Value pair where Key= Variable Name, Value= String template
            which can have multiple inputs.</p>
            <h5>
                Template Usage:</h5>
            <br />
            <pre>
            <code>[{"IP TO ROUTE":" ip route {0} 255.255.255.255 10.1.1.1 "}] 
            // user can input multiple IP address delimited by carriage return. </code>
            </pre>
            <h5>
                Sample Input:</h5>
            <table>
                <tr style="vertical-align: top">
                    <td>
                        IP TO ROUTE
                    </td>
                    <td>
                        <textarea style="width: 400px; height: 80px">
10.50.1.100, ToFirewall
10.50.2.200, ToAccounting
10.50.3.300, ToFinance
</textarea>
                    </td>
                </tr>
            </table>
                   <p style="color: #3399FF">
                /* Notice each line in put has two parameters delimited by comma. */
            </p>
            <h5>
                Sample Output:</h5>
            <br />
            <pre>
            <code>ip route 10.50.1.100 255.255.255.255 10.1.1.1 ToFirewall 
            ip route 10.50.2.200 255.255.255.255 10.1.1.1 ToAccounting 
            ip route 10.50.3.300 255.255.255.255 10.1.1.1 ToFinance </code>
            </pre>
               <p style="color: #3399FF">
                /* Depending how many lines of user input, the display will be the same number of lines. */
            </p>
        </li>
        <li class="three">
            <h3 class="blue">
                Calculated Parameter: [{"VAR NAME":"(+1)"}]</h3>
           <p> Using JSON format of Key, Value pair where Key= Variable Name usually an IP address
            or an integer, Value= Arithmetic operation to be added or subtracted to a Key input.
            "Plus or none" or "Minus" sign are recognized.</p>
            <h5>
                Template Usage:</h5>
            <br />
            <pre>
            <code>int gig1/0 IP Address [{GE1/0 IP ADDRESS}] 255.255.255.252 
            ! 
            router bgp 1235 neighbor [{"GE1/0 IP ADDRESS":"(+1)"}] remote-as 2345 ! </code>
            </pre>
            <p style="color: #3399FF">
                /* Notice how the first parameter is using lazy format! */
            </p>
            <h5>
                Sample Input:</h5>
            <br />
            GE1/0 IP ADDRESS
            <input type="text" name="input_data" />
            <h5>
                Sample Output:</h5>
            <br />
            <pre>
            <code>int gig1/0 IP Address 10.10.1.1 255.255.255.252<br />
                router bgp 123 <br />
                neighbor 10.10.1.2 remote-as 2345 
                ! </code>
            </pre>

        </li>
    </ol>
</div>
